//
//  DB.m
//  UI_DataBase
//
//  Created by dllo on 15/8/14.
//  Copyright (c) 2015年 蓝鸥科技. All rights reserved.
//

#import "DB.h"

// 一个数据库只能对应一个指针,唯一
static sqlite3 *dbPoint = nil;

@implementation DB

// 由于bundle包种的内容在程序执行期间不能进行任何修改, 需要把它从bundle中拷贝到另外三个各位文件夹中(Documents, Library, tmp)
// 将bundle包里面的数据库拷贝到library文件夹中
+(sqlite3 *)openDB
{
    //若数据库指针存在, 就结束.
    if (dbPoint) {
        return  dbPoint;
    }
    NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"Holiday" ofType:@"rdb"];
    NSString *destination = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    destination = [NSString stringWithFormat:@"%@/%@.rdb", destination,@"my"];
    NSFileManager *manager = [NSFileManager defaultManager];
    
    // 路径只能拷贝一次, 如果文件已经存在于路径里面不能再拷贝, 不存在, 就拷贝.
    
    if ( ![manager fileExistsAtPath:destination]) {
        
    // 将bundle包里面的数据库拷贝到library文件夹中
    [manager copyItemAtPath:sourcePath toPath:destination error:nil];
    }
    sqlite3_open([destination UTF8String], &dbPoint); // 把NSString对象转换成const指针
    return dbPoint;
}

// 关闭数据库
 +(void)closeDb
{
    sqlite3_close(dbPoint);
}

@end
